الدرس الثالث
الحلقة عنصر مشترك في
كل لغات البرمجة .ويمكن استخدام الحلقة
للتكرار ضمن مصفوفة لتؤدي عملا ما عددا من
المرات او لقرائة ملف من القرص ........... و الامكانيات
لانهائية..؟؟
الحلقة
هي عنصر في لغة البرمجة يستخدم
لاداء عمل ما بشكل متكرر حتى يتحقق شرط معين .
نقطة البداية في
الحلقة هي احدى عبارات الحلقات(( للغة
الدلفي مثلا)) (for,while , repeat) .
الجسم
يحتوي العبارات التي سوف تنفذ كل
مرة عبر الحلقة .
الجسم يمكن ان يحتوي اية شيفرة صحيحة من لغة
الدلفي
ويمكن
ان تكون مؤلفة من سطر واحد او عدة سطور .
واذا
كان الجسم يحتوي على عدة سطور فيجب عندئذ
اغلاق الشيفرة بعبارتي End,begin (ماعدا خلقة repeat) .
نقطة نهائية هي الكلمة الاساسية End (في
حال حلقة For و While) او الكلمة الاساسية Until
(في حال الحلقة Repeat ) وعندما
يتالف الجسم من سطر واحد فلا داعي لعبارتي End و Begin .
معظم الحلقات تعمل بشكل التالي: تبدأ الحلقة
ويفحص الشرط اذا كان الشرط غير محقق ينفذ
جسم الحلقة عندما يصل تنفيذ البرنامج الى اخر الحلقة فانه يقفز الى بداية الحلقة
ويفحص مجددا اذا كان الشرط لايزال غير محقق تعاد العملية بكاملها اذا كان الشرط محققا يقفز البرنامج الى السطر
الذي يلي كتلة شيفرة الحلقة مباشرة
الاستثناء الوحيد لهذا الوصف هو حلقة
Repeat التي تفحص الشرط في نهاية الحلقة عوضا عن بدايتها.
اذا
الشرط يخبر الحلقة متى يجب ان تتوقف عن
التنفيذ. فعليا يقول الشرط على سبيل
المثال (( تابع القيام بالتالي حتى يصبح Y=0)) او((تابع قراءة الملف حتى تصل الى نهاية الملف
)) بعد ان تبدأ الحلقة بالتنفيذ فانها
تتابع تنفيذ جسم الحلقة حتى يصبح الشرط
محققا.
تنويه
25 من السهل ان تكتب حلقة بشكل عفوي شرطها لايتحقق ابدا
هذا سوف يؤدي الى برنامج مقفل او مغلق الطريقة الوحيدة هي ان تضغط Ctrl+Alt+Del لتنتهي هذه المهمة عندها سوف يعرض لك مدير المهمات بالويندوز ان البرنامج غير مستجيب
عندا اختر انهاء مهمة لاغلاقة البرنامج
في كثير من الاحيان تحتاج الى ان تكرر امر ما عدد معين((مثلا طباعة
اسم او رقم معين على الشاشة مثلا)) ومن
غير الطبيعي ان ينجز المبرمج هذا الامر من تلقاء نفسه خاصة
اذا كان عدد التكرار الواجب القيام به كبيرا.....( عداك على انه اسلوب غير مهيكل
...لماااذا.......... لانه ببساطة يزيد من الوقت
لانجاز البرنامج وبالتالي التاخر
عن تسليمه...... عد اخي القارئ الى الدرس الثالث من المحاضرة الاولى واقرأه بتمعن
اكثر)) .
واحيانا تحتاج الى تكرار انت نفسك ((المبرمج)) لاتعرف كم هو لانه مثلا
يكون مرتبط بحالة شرطية معينة.
اذاً اذا اردنا ان نسرد اساسيات كتابة الحلقات
هي
·
تعريف لمتحول التحكم
بالحلقة (وهو عداد الحلقة)
·
تحديد القيمة
الابتدائية لمتحول التحكم بالحلقة
·
تحديد اسلوب الزيادة
او النقصان الذي يتم من خلاله تغيير قيمة متحول التحكم بالحلقة في كل مرة نمر بها
·
تحديد فيما الشرط
الذي نقوم من خلاله بفحص النتيجة النهائية
لمتحول التحكم بالحلقة (حتى يتم تحديد فيما اذا كان من الممكن معاودة تنفيذ
الحلقة)
من المهم ان نعرف جذور التكرار وكما ذكرت في
الدرس الثالث للمحاضرة الاولى
انه
كانت البرامج قديما في غاية القصر
والتعقيد وكانت التكرارات مكونة من عنوان وبعض العبارات وقفزة .......
في
الباسكال العنوان (Label) عبارة عن
اسم متبوع بنقطتين (:) يتم وضع العنوان على
يسار أي عبارة وتؤدى القفزةمن خلال كتابة
تعليمة GoTo متبوعة باسم العنوان
ويكون العنوان Name Label (Name ترمز
الى اسم العنوان ) بعد الاعلان عن الوحدات
(Uses) وفي البرنامج نضع النقطة التي صنعناها متبوعة
بنقطتين وعندما نريد الذهاب اليها نذهب
بواسطة ال GoTo
مثال

اذا استخدام عبارات ال GoTo يجنبنا
التكرارات ويقوم بعملها ..............؟؟؟
من
قال ذالك من قاااال......اذا انا الان اصر بان تعود الى الدرس الثالث لاني تيقنت
بانك لم تقرائه القراءة الصحيحة المتانية .......؟؟؟؟؟
عليك
كمبرمج ان تتجنب تماما كارثة اسمها ال GoTo مهما كانت اسبابك وتحت أي عذر قد يخطر في بالك
وذالك لنفس الاسباب الموضحة بالدرس الثالث من المحاضرة الاولى ولكي نتجنب استخدام
هذه العبارة الكارثية كانت هناك حلقات التكرار...... التي جعلت البرامج اكثر استيعابا ومقرئية واسهل للفهم
البنية
التكرارية ذات العداد While:

تسمى هذه البنية ايضا ببنية التكرار
الحذرة.......
حيث انها تفحص
شرط الاستمرار اولا ومن ثم تنفذ
جسم الحلقة
ففي مثالنا
السابق والمرفق مع الدرس بعناوان While(1)
اولا قمنا بحجز متغيرة وهذه المتغيرة يتم وضع قيمتها او كنيوينتها من
قبل المستخدم (كانت رقم او حرف او مهما كانت فانها تعامل معاملة الحروف)
عندما او بينما Reply لاتساوي Stop افعل
اكتب You Typed بالاضافة للمتغيرة التي ادخلها
المستخدم
اكتبType any thing Type
Stop To End
وهنا
فان البرنامج سوف يفحص شرط
الاستمرار في الحلقة (وهو هنا عدم مساواة قيمة المتغير ل Stop) وعندما
يتحقق شرط الاستمرار فانه سوف ينفذ الحلقة
واذا كان الشرط محققا فانه سوف
يخرج من الحلقة ويتابع تنفيذ التعليمات او العبارات التالية حسب تسلسل كتابة
البرنامج
تنويه26 راجع الدرس السادس من المحاضرة الاولىلمعرفة ماهو المتغير .؟
اذا
الصيغة الكتابية لهذه الحلقة
"Do" <تعبير بولياني "While"
<عبارة بسيطة او مركبة>
يدعى التعبير البولياني في هذه الحلقة بشرط
الاستمرار إذ ان تنفيذ هذه الحلقة يستمر طالما
ان شرط الاستمرار محقق أي قيمته True وينهي تنهى تنفيذ هذه الحلقة عندما تصبح قيمة هذ12.0pt'>While(1)
والمخطط لهذه الحلقة هو

بقي اng=ARوه ان هذه البنية سمي;mso-حذرة لانها تفحص شرط الاستمرار2.0pt'>While(1)
والى الfont-مع درس اخر وباقي الحلقات
ملاحظة راجع المرفقات التي سوف انزلها الان معpt;mso-aولاحقا
Zaher.syid@gtyil.com
Zahersyid937@hottyil.com
zahersyid@tyktoob.com
zhrsyid@yahoo.com